package xutil

import "gitee.com/wosylf/ltool/encrypt"

type S手机信息 struct {
	PhoneMd5 string `gorm:"type:char(32);comment:手机号md5;index" json:"-" form:"-"`
	Phone    string `gorm:"-" json:"phone" form:"phone"`                         //手机号，多出一些兼容国外？
	EmPhone  string `gorm:"type:varchar(64);comment:加密后的手机号;" json:"-" form:"-"` //手机号，多出一些兼容国外？
}
type S身份证信息 struct {
	IdcardMd5 string `gorm:"type:char(32);comment:手机号md5;index" json:"-" form:"-"`
	Idcard    string `gorm:"-" json:"idcard" form:"idcard"`                       //手机号，多出一些兼容国外？
	EmIdcard  string `gorm:"type:varchar(64);comment:加密后的手机号;" json:"-" form:"-"` //手机号，多出一些兼容国外？
}

var S加解密 encrypt.S加解密接口
var 初始化 = false

const (
	V默认密钥 = "V默认密钥"
)

func F初始化信息加密(args ...string) {
	初始化 = true
	if len(args) > 0 {
		S加解密 = encrypt.F新建Ase加解密(args[0])
	} else {
		S加解密 = encrypt.F新建Ase加解密(V默认密钥)
	}
}

//使用此方法前必须初始化一下
func (a *S手机信息) F手机号加密() {
	if !初始化 {
		F初始化信息加密()
	}
	a.PhoneMd5 = encrypt.FmtMd5(a.Phone + V默认密钥)
	a.EmPhone, _ = S加解密.F加密信息(a.Phone)
}

//使用此方法前必须初始化一下
func (a *S手机信息) F手机号解密() {
	if !初始化 {
		F初始化信息加密()
	}
	a.Phone, _ = S加解密.F解密信息(a.EmPhone)
}
